In existing client-server computing environments, the end user interfaces with a client. The client is attached to a server over a network, and the server provides the client with files of information as they are needed. When the user requests data from a file, the client sends a request to the server, and the server responds by sending the file containing the requested data to the client. As the user modifies the a visual representation of the data, the client modifies a local copy of the file. When the user is done, the client writes the local copy of the file back to the server, and deletes information about the current visual representation of the data within the client.
A first problem in such existing systems is that when a second user accesses the document while the first user was working with it, the second user has no access to information about the visual display of the document as seen by the first user. Therefore, the two users cannot simultaneously work with a shared document such that both can see the results of the other's changes to the document's visual representation.
A second problem in such existing systems is that when a modified file is written back to the server from the client, information relating to how the file was visually displayed to the user are not preserved. Therefore when the file is subsequently referenced, the previous visual representation must be recreated by each referencing user. This requires duplicative user efforts in setting up the visual display of a document each time the document is opened.
A further need not addressed by current systems is to provide a mechanism for merging files based on a visual display of the files.
For these reasons and others, a new system is required for document management in which aspects of the visual display of a document are preserved, and periodically updated. The new system should be designed to work in a client--server computing environment, where potentially thousands of documents are displayed to the user simultaneously. The new system should also allow multiple users to work together simultaneously on a document within a single repository on multiple clients, and provide a mechanism for merging files based on their visual representation.